#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTextEdit>
#include <QPushButton>
#include <QTabWidget>
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow() override;

private:
    Ui::MainWindow *ui;
    enum TUIType {
        uiFrame,   //刷新界面
        uiSerialPort, //串口
    };

    //文本框
    QTextEdit *m_teSource = nullptr;
    //结构体信息翻页组件
    QTabWidget *m_tabWidget = new QTabWidget(this);
    //串口打开/关闭图片
    QPixmap m_pixmapSerialPortOpen = QPixmap(":/images/serialopen.png");
    QPixmap m_pixmapSerialPortClose = QPixmap(":/images/serialclose.png");

    void dataToUI(const TUIType &nuitype);
    void dragEnterEvent(QDragEnterEvent *event) override;
    void dropEvent(QDropEvent *event) override;

private slots:
    //文本变化
    void slotSourceTextChanged();
    //打开文件
    void slotActionOpenFileTrigger();
    //翻页切换
    void slotTabCurrentChanged(int index);
    //读取按钮点击
    void slotBtnRdClicked();
    //下发按钮点击
    void slotBtnWrClicked();
    //控制按钮点击
    void slotBtnCtlClicked();
    //串口刷新按钮点击
    void slotBtnUpdateSerialPortClicked();
    //串口打开点击
    void slotBtnOpenCloseSerialPortClicked();
    //提示消息
    void slotToolTip(const QString &ntooltip);

};
#endif // MAINWINDOW_H
